package main

//类型查询

//type Inter interface {
//	PingA()
//	PangA()
//}
//
//type Anter interface {
//	Inter
//	String()
//}
//
//type St struct {
//	Name string
//}
//
//func (St) PingA() {
//	fmt.Println("ping")
//}
//
//func (*St) PangA() {
//	fmt.Println("pang")
//}
//
//func main() {
//	st := St{Name: "destroy"}
//	var i Inter = &st
//
//	switch x := i.(type) {
//	case Inter:
//		x.PingA()
//		x.PangA()
//	case Anter:
//		x.String()
//	case *St:
//		fmt.Println(x.Name)
//	case nil:
//		fmt.Println(nil)
//	default:
//		fmt.Printf("%T\n", x)
//	}
//}
//
